1. Field of the Invention
The invention relates to electronic form mapping and recognition. More particularly, the invention relates to an automated client-based method of filling out electronic forms that does not require any prior mapping or examination of the forms.
2. Description of Related Technology
Internet users are only too familiar with the repetitive chore of filling out online forms. Many websites limit full access to registered accountholders. Registration may require providing personal data by way of entering the data into the fields of an HTML form. Return visits to such sites generally require a sign-on procedure in which the user is asked to provide, for example, a user name and password. E-commerce applications require the user to fill in order forms that ask for personal data, billing address, shipping address, credit card information and such. Often, users, when faced with a request to complete yet another form, just move on because they simply don""t want to take the time to complete the form. Thus, filling out online forms, while essential, also constitutes a serious obstacle for the site sponsor and the user alike. The user is deprived of what may be an important source of value, and the site sponsor may lose sales, or at the very least, may miss important opportunities to find out more about the people who visit their site. Thus, it would be an important advantage to provide a system that automated the task of filling out electronic forms.
The parent to the current application, J. Rawat, S. Palnitkar, Method and system of implementing recorded data for automating Internet interactions, U.S. patent application Ser. No. 09/561,449, filed Apr. 28, 2000 provides just such a system. User information is maintained in a central database. The user information includes personal data as well as account-specific data, such as the URL, and the login data for sites the user has visited. Client-side program code, integrated with a conventional web browser provides a utility window through which the user may access the central databasexe2x80x94to edit user information, for example. In addition to the database of user information, the system also maintains a database of form information wherein mapping information is stored for forms from previously visited web sites. The forms are mapped by parsing the underlying code, typically HTML, of the form, for example, the field tags. When a mapped from is subsequently encountered, the map allows the form fields to be automatically populated with the required user data in the required format. Occasionally, for example, in the case of optional fields or forms that have changed slightly so that the saved map is no longer completely accurate, user intervention may be required.
The prior art provides several examples of network based or distributed electronic wallets, in which user information is stored in a database for later use. D. Schutzer, System and method for use of distributed electronic wallets, European Patent Application No. EP1077419, published Feb. 21, 2001 describes a method and system in which two electronic wallets communicate and exchange information; typically a consumer""s electronic wallet populates a merchant""s wallet with the consumer""s personal data. The merchant wallet stores the consumer""s personal data for later use. M. Bahdur, G. Huddleston, C. Paltenghe, M. Takata, Distributed network based electronic wallet, European Patent Application No""s. EP0917119 and EP0917120, filed May 19, 1999 provide a system in which various classes of user data are stored in distributed databases; the user may download the stored data to a wallet application. M. Sivadas, D. Steed, J. Main, Server-based electronic wallet system, European Patent Application No.
EP1168264, filed Jan. 2, 2002 describes system in which purchase requests directed to a merchant server from a wireless device are mediated by one or both of a proxy server and a wallet server. The .NET PASSPORT SERVICE, provided by Microsoft Corporation of Redmond Wash., includes a service wherein the user may use a single sign-in and make express purchases from participating merchants and web sites. A wallet application allows the user to store personal data on a secure server, such as billing and shipping addresses and credit card data. When the user makes a purchase from a participating merchant, the user data is automatically supplied to the merchant from the secure server. In all of these previous examples from the prior art, a distributed, or client-server architecture is essential to the proper function of the system. None of the systems described contemplate an exclusively client-based form-filler that is capable of populating any web-based form with user data.
A. Gupta, A. Rajaraman, Method and system for automatically filling in forms in an integrated network based transaction environment, U.S. Pat. No. 6,199,079, filed Mar. 20, 1998 describes a method of automatically filling in online forms presented by web pages, in which a particular form is assigned a unique identifier and a template for the form is stored in a database of form templates, indexed by forms"" unique identifiers. When the user encounters a form, the form is filled in according to that form""s template from the database. R. Haridas, M. Markus, Method and apparatus for completion of fields on Internet page forms, International Application No. PCT/US00/41802, filed on Nov. 2, 2000 describes an automated method for completion of Internet webpage forms in which user data stored on a centralized server is automatically applied to forms that have been previously registered with the centralized server. Thus, both of these examples from the prior art employ a distributed architecture and derive their form-filling capability from a record of the form stored at a central location. Neither contemplates the ability to analyze any form encountered and populate the form fields with the required user data in the proper display format without any prior mapping or examination. J. Light, J. Garney, Automatic web based form fill-in, U.S. Pat. No. 6,192,380, filed on Mar. 31, 1998, describes an automated form filler that recognizes a form within an HTML page and fills in the form fields with data taken from a database. Recognition of the form and the form fields occurs by parsing the page""s HTML code and identifying page tags and field tags.
M. Pennell, A. Martin, Method and apparatus for automatic form filling, International Application No. PCT/US0042073, filed on Nov. 9, 2000 describes a software application intended for use with or integration into a conventional web browser application that automatically populates the fields of a web-based form with the required user data. The described software application gains knowledge of the form""s fields and the expected contents by analyzing the underlying code for the page received by the browser from the visited web site, generally HTML or XML code, or the like. Embodiments of the software application in both distributed and client-based implementations are described.
The Roboform user manual, (copyright)1999-2002, updated Jan. 25, 2002, describes a client-based web form filler that works as an add-on to conventional web browser applications. Forms may be filled in either by means of a xe2x80x9cpass card,xe2x80x9d a record that saves information related to a specific form at a particular web site, or by means of an xe2x80x9cidentity,xe2x80x9d a user profile, wherein the software application analyzes the page encoding and populates the form fields with appropriate data from the identity. By the user selecting a country, the application applies the appropriate display format to form data such as dates and telephone numbers.
All of the above form-fillers analyze a web form based on the form""s underlying code. There is no indication that they analyze a form based on page elements visible to the user on the rendered page, such as field labels. While the Roboform application is able to format data according to a user-selected country format, there is no indication that either Roboform or the form-filler described by Pennell, et al. can format data on an ad hoc basis by analyzing user-visible formatting prompts, generally provided somewhere adjacent the field.
While parsing html field tags provides generally satisfactory results, the lack of any naming convention for the fields of an HTML form has made it impractical to devise a completely automated form-filler. It is difficult for systems that parse a page""s underlying code to identify fields to accommodate the limitless variety typically encountered in field names, without at least some user intervention. The adoption of standardized markup languages such as ECML (E-commerce markup language) may help to remedy this situation. In the meantime, there exist multitudes of forms that do not follow any sort of naming convention for the fields. On the other hand, field labels, the visual page elements that communicate a field""s purpose to the user display a great deal more uniformity than the underlying field names.
Accordingly, it would be a great advantage to provide an intelligent, fully automated, client-based form filler that maps the fields of an electronic form by parsing visual page elements, such as the user-visible field labels. It would also be desirable to provide the functionality of determining the appropriate contents for a field based on the field""s context, the type of neighboring fields to the target field. Furthermore, it would be a significant technical advance to provide the capability of formatting the appropriate data according to visible formatting prompts.
In recognition of the above needs, the invention provides an intelligent form-filler that does not require any prior mapping or examination of the forms. Client-side program code examines electronic documents such as web pages and automatically fills in fields of forms contained in the document with the appropriate data from a user profile, without requiring prior mapping or examination of the form. The application maps user data to the appropriate form field by examining field label text on the form as the user sees it, i.e. text that is visually nearest the field. For fields lacking labels, the application evaluates the field context by determining the field type of neighboring fields to determine the required data. To enter the information in the correct format, the application parses visual hints concerning, for example, the date format provided to the user and formats the data accordingly. In the complete absence of any usable visual cues or contextual information, the program code is capable of parsing the form""s underlying code. Alternate embodiments of the invention are possible, in which that user information is alternately stored on the client, or on a server, to maximize portability.